package com.wlit.UHF;

import com.sun.jna.Library;
import com.sun.jna.Native;

import java.io.File;

public interface JNARfidDll extends Library {
    JNARfidDll jnaDll = (JNARfidDll) Native.loadLibrary(System.getProperty("user.dir") + File.separator + "UHFReader86", JNARfidDll.class);

    int OpenComPort(int Port, byte[] ComAdr, byte Baud, int[] handle);

    int AutoOpenComPort(int Port, byte[] ComAdr, byte Baud, int[] FrmHandle);

    int OpenNetPort(int Port, String IPaddr, byte[] comAddr, int[] PortHandle);

    int CloseNetPort(int PortHandle);

    int CloseSpecComPort(int Port);

    int Inventory_G2(byte[] ConAddr, int QValue, byte Session, byte MaskMem, byte[] MaskAdr, int MaskLen, byte[] MaskData,
                     byte MaskFlag, byte AdrTID, byte LenTID, byte TIDFlag, byte Target, byte InAnt, byte Scantime, byte Fastflag,
                     byte[] EPClenandEPC, byte[] Ant, int[] Totallen, int[] CardNum, int PortHandle);

    int SetRfPower(byte[] ConAddr, int powerDbm, int PortHandle);

    int SetRegion(byte[] ConAddr, byte dmaxfre, byte dminfre, int PortHandle);

    int SetBaudRate(byte[] ConAddr, int baud, int PortHandle);

    int ReadData_G2(byte[] comAddr, byte[] EPC, byte ENum, byte Mem, byte WordPtr, byte Num, byte[] Password,
                    byte MaskMem, byte[] MaskAdr, byte MaskLen, byte[] MaskData, byte[] Data, byte[] Errorcode, int PortHandle);

    int WriteData_G2(byte[] comAddr, byte[] EPC, int WNum, byte ENum, byte Mem, byte WordPtr, byte[] Wdt,
                     byte[] Password, byte MaskMem, byte[] MaskAdr, byte MaskLen, byte[] MaskData, byte[] Errorcode, int PortHandle);

    int WriteEPC_G2(byte[] ComAdr, byte[] Password, byte[] WriteEPC, byte WriteEPClen, byte[] errorcode, int FrmHandle);
}
